
import java.util.ArrayList;


public class Arbre {

    private Noeud racine;
    private ArrayList<Arbre> fils;
    private int indexFilsCourant;

    public Arbre(Noeud n) {
        racine = n;
        fils = new ArrayList<Arbre>();
        indexFilsCourant = -1;
    }

    public void deepSearch() {
        if (fils != null) {
            for (int i = 0; i < fils.size(); i++) {
                fils.get(i).deepSearch();
            }
        }
        //racine.imprim();
    }

    public void addFils(Arbre fils) {
        this.fils.add(fils);
        if(this.indexFilsCourant == -1) {
            this.indexFilsCourant = 0;
        }
    }

    public Noeud getRacine() {
        return this.racine;
    }

    public int getNbFils() {
        return this.fils.size();
    }

    public void setFirstFils() {
        this.indexFilsCourant = 0;
    }

    public Arbre getFils() {
        return this.fils.get(indexFilsCourant);
    }

    public Arbre getFils(int index) {
        return this.fils.get(index);
    }

    public void setNextFils() {
        if(this.indexFilsCourant < this.fils.size()) {
            this.indexFilsCourant++;
        }
    }
}

